package com.sunyur.tailor.channel.service.inner.recipients.service;

import com.sunyur.tailor.channel.common.middle.base.ChannelListResult;
import com.sunyur.tailor.channel.common.middle.base.ChannelResult;
import com.sunyur.tailor.channel.service.inner.recipients.model.RecipientsHeadModel;
import com.sunyur.tailor.channel.service.inner.recipients.model.RecipientsItemModel;
import com.sunyur.tailor.channel.service.inner.recipients.param.RecipientsConfirmParam;
import com.sunyur.tailor.channel.service.inner.recipients.param.RecipientsHeadParam;
import com.sunyur.tailor.channel.service.inner.recipients.param.RecipientsOutsideAuditParam;
import com.sunyur.tailor.channel.service.inner.recipients.param.RecipientsRollBackStatusParam;

/**
 * @Author: HuBaoding
 * @Description: 领用单相关Service
 * @Date: Created in 11:23 2021/5/14
 */
public interface RecipientService {

    /**
     * 根据单号获取领用单头部信息
     * @param param
     * @return
     */
    ChannelResult<RecipientsHeadModel> getRecipientHead(RecipientsHeadParam param);

    /**
     * 根据单号获取领用行信息
     * @param param
     * @return
     */
    ChannelListResult<RecipientsItemModel> listItem(RecipientsHeadParam param);


    /**
     * 领用单外部审批
     * @param param
     * @return
     */
    ChannelResult<Boolean> recipientsOutsideAudit(RecipientsOutsideAuditParam param);

    /**
     * 确认领用
     * @param param
     * @return
     */
    ChannelResult<Boolean> recipientsConfirm(RecipientsConfirmParam param);

    /**
     * 领用单状态回滚
     * @param param
     * @return
     */
    ChannelResult<Boolean> recipientsRollBackStatus(RecipientsRollBackStatusParam param);



}
